home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 32 / CD Expert nº 32.iso / Army Men TiS / data1.cab / Required_Files / rules / node_common.txt < prev    next >
Text File  |  1999-10-08  |  5KB  |  169 lines

  1. //////////////////////////////////////////////////////////////////////////////
  2. // Node control rules common to node and fusion
  3. //////////////////////////////////////////////////////////////////////////////
  4.  
  5. // @1 = node number (1-5)
  6. macro node_macro 1
  7. {
  8.     // 0 = no owner, 1 = green, 2 = tan, 3 = blue, 4 = grey
  9.     variable node@1owner 0
  10.     variable oldnode@1owner 0
  11.     variable node@1holder 0
  12.  
  13.     if startup1 then
  14.         deploy blacknode@1,
  15.         setitemflag blacknode@1 stratsquare 1,
  16.         setitemflag blacknode@1 strategic 1
  17.  
  18.     if node@1OwnerChanged testvar oldnode@1owner = 0 then
  19.         undeploy blacknode@1,
  20.         setitemflag blacknode@1 strategic 0,
  21.         trigger showNewNode@1Owner
  22.  
  23.     // whenever node@1owner changes create explosions to make flags appear/dissapper in a
  24.     // puf of smoke
  25.     if node@1OwnerChanged then
  26.         createexplosion greennode@1 128 0 green    
  27.  
  28.     // if there is a new node@1 owner then play a sound
  29.     if showNewNode@1Owner testvar node@1owner <> 0 then
  30.         playsound "mp_own.wav" (0,0) 1 2
  31. }
  32.  
  33. expand node_macro ( 1 )
  34. expand node_macro ( 2 )
  35. expand node_macro ( 3 )
  36. expand node_macro ( 4 )
  37. expand node_macro ( 5 )
  38.  
  39. // @1 = color, @2 = Capitalized color (e.g. "Green"), @3 is value for node owner,
  40. // @4 = node number (1-5),
  41. // @5-7 = other colors
  42. macro team_node_macro 7
  43. {
  44.     variable @1onnode@4 0
  45.  
  46.     // these pairs of variables are used to prevent sarge leaving and returning to the node within
  47.     // 1 second and scoring at a double rate
  48.     variable @1GainsNode@4Count 0
  49.     variable @1KeepsNode@4Check 0
  50.  
  51.     pad @1node@4pad @4 @1 unit > 0
  52.  
  53.     if startup1 testvar iscoloringame @1 > 0 then
  54.         setitemflag @1node@4 stratsquare 1,
  55.         setitemowner @1node@4 @1
  56.  
  57.     // check for @1 taking or losing this node
  58.  
  59.     if padon @1node@4pad then
  60.         setvar @1onnode@4 1,
  61.         trigger check@1holdsnode@4
  62.  
  63.     if padoff @1node@4pad then
  64.         setvar @1onnode@4 0,
  65.         trigger @1offnode@4
  66.  
  67.     if @1offnode@4 testvar node@4holder = @3 then
  68.         setvar node@4holder 0,
  69.         trigger check@5holdsnode@4,
  70.         trigger check@6holdsnode@4,
  71.         trigger check@7holdsnode@4
  72.  
  73.     if check@1holdsnode@4 testvar @1onnode@4 = 1 and node@4holder = 0 then
  74.         setvar node@4holder @3,
  75.         trigger check@1ownsnode@4
  76.  
  77.     if check@1ownsnode@4 testvar node@4owner <> @3 and node@4holder = @3 then
  78.         setvar node@4owner @3,
  79.         trigger node@4OwnerChanged,
  80.         showmessage "@2 takes control of node @4",
  81.         addvar @1GainsNode@4Count 1,
  82.         triggerdelay refvar nodeScoreDelay check@1node@4scoresinitial
  83.  
  84.     if check@1node@4scoresinitial then
  85.         addvar @1KeepsNode@4Check 1
  86.  
  87.     if check@1node@4scoresinitial testvar node@4owner = @3 then
  88.         trigger check@1node@4scores
  89.  
  90.     if check@1node@4scores testvar node@4owner = @3 and @1KeepsNode@4Check = @1GainsNode@4Count then
  91.         trigger increment@1score,
  92.         playsound "mp_tick.wav" (0,0) 2 3,
  93.         trigger check@1wins,
  94.         triggerdelay refvar nodeScoreDelay check@1node@4scores
  95.  
  96.     // update the flags to display the owner of node@4
  97.  
  98.     if node@4OwnerChanged testvar oldnode@4owner = @3 and node@4owner <> @3 then
  99.         trigger decrement@1nodesOwned,
  100.         undeploy @1node@4,
  101.         setitemflag @1node@4 strategic 0,
  102.         trigger showNewNode@4Owner,
  103.         removescoresymbol @1 @1node
  104.  
  105.     if showNewNode@4Owner testvar node@4owner = @3 and oldnode@4owner <> @3 then
  106.         setvar oldnode@4owner @3,
  107.         trigger increment@1nodesOwned,
  108.         deploy @1node@4 blacknode@4,
  109.         setitemflag @1node@4 strategic 1,
  110.         addscoresymbol @1 @1node
  111. }
  112.  
  113. // @1 = color, @2 = Capitalized color (e.g. "Green"), @3 is value for node owner,
  114. // @4-6 are other colors
  115. macro node_control_macro 6
  116. {
  117.     variable @1nodesOwned 0
  118.  
  119.     if increment@1score testvar @1nodesOwned = 1 then
  120.         addvar @1score own1NodeBonus
  121.  
  122.     if increment@1score testvar @1nodesOwned = 2 then
  123.         addvar @1score own2NodesBonus
  124.  
  125.     if increment@1score testvar @1nodesOwned = 3 then
  126.         addvar @1score own3NodesBonus
  127.  
  128.     if increment@1score testvar @1nodesOwned = 4 then
  129.         addvar @1score own4NodesBonus
  130.  
  131.     if increment@1score testvar @1nodesOwned = 5 then
  132.         addvar @1score own5NodesBonus
  133.  
  134.     expand team_node_macro ( @1 "@2" @3 1 @4 @5 @6 )
  135.     expand team_node_macro ( @1 "@2" @3 2 @4 @5 @6 )
  136.     expand team_node_macro ( @1 "@2" @3 3 @4 @5 @6 )
  137.     expand team_node_macro ( @1 "@2" @3 4 @4 @5 @6 )
  138.     expand team_node_macro ( @1 "@2" @3 5 @4 @5 @6 )
  139. }
  140.  
  141. expand node_control_macro ( green "Green" 1 tan   blue  grey )
  142. expand node_control_macro ( tan   "Tan"   2 blue  grey  green )
  143. expand node_control_macro ( blue  "Blue"  3 grey  green tan )
  144. expand node_control_macro ( grey  "Grey"  4 green tan   blue )
  145.  
  146. // @1 = color of player, @2 = color of possible ally
  147. macro nodes_owned_team_macro 2
  148. {
  149.     if increment@1nodesOwned testvar isally @1 @2 = 1 then
  150.         addvar @2nodesOwned 1
  151.  
  152.     if decrement@1nodesOwned testvar isally @1 @2 = 1 then
  153.         addvar @2nodesOwned -1
  154. }
  155.  
  156. // @1 = color of player, @2-4 = color of other players
  157. macro nodes_owned_macro 4
  158. {
  159.     expand nodes_owned_team_macro ( @1 @1 )
  160.     expand nodes_owned_team_macro ( @1 @2 )
  161.     expand nodes_owned_team_macro ( @1 @3 )
  162.     expand nodes_owned_team_macro ( @1 @4 )
  163. }
  164.  
  165. expand nodes_owned_macro ( green tan   blue  grey )
  166. expand nodes_owned_macro ( tan   blue  grey  green )
  167. expand nodes_owned_macro ( blue  grey  green tan )
  168. expand nodes_owned_macro ( grey  green tan   blue )
  169.